package com.lantosec.hmrp.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lantosec.hmrp.core.kit.PageVO;
import com.lantosec.hmrp.core.kit.tree.TreeNodeVo;
import com.lantosec.hmrp.modules.system.entity.SysMenu;
import com.lantosec.hmrp.modules.system.vo.SysMenuVO;
import com.lantosec.hmrp.modules.system.vo.SysMenusVO;

import java.util.List;

/**
 * <p>
 * 系统菜单表 服务类
 * </p>
 *
 * @author AutoCode
 * @since 2020-02-12
 */
public interface ISysMenuService extends IService<SysMenu> {

    /**
     * 菜单排序
     * @param id
     * @param menuOrder
     */
    public void updateOrder(String id, Integer menuOrder);

    /**
     * 获得菜单树
     * @return
     */
    public List<TreeNodeVo> menuTree();

    /**
     * 根据指定ID查询对应的菜单树
     *
     * @param menuId
     * @return 菜单树
     */
    public List<TreeNodeVo> menuTree(String menuId);


    /**
     * 获得指定Id下的菜单树节点，不包含节点下的子节点
     *
     * @param menuId
     * @return 节点列表
     */
    public List<TreeNodeVo> menuNodes(String menuId);

    /**
     * 查询菜单下的子菜单（分页）
     * @param id
     * @return
     */
    public List<SysMenu> getMenuPage(String id);

    String queryMaxmenuId(String parentId);

    /**
     * 查询所有的菜单
     * @return
     */
    List<SysMenusVO> getAll(String menuId,String deptId,String positionId);

    /**
     * 查询所有的菜单
     * @return
     */
    List<SysMenusVO> getAllMenu(String menuId);


    void deleteMenuInfo(String ids);
}
